home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / gnu / gdb / gdb_18s.zoo / defs.h < prev    next >
C/C++ Source or Header  |  1992-03-25  |  3KB  |  92 lines

  1. /* Basic definitions for GDB, the GNU debugger.
  2.    Copyright (C) 1986 Free Software Foundation, Inc.
  3.  
  4. GDB is distributed in the hope that it will be useful, but WITHOUT ANY
  5. WARRANTY.  No author or distributor accepts responsibility to anyone
  6. for the consequences of using it or for whether it serves any
  7. particular purpose or works at all, unless he says so in writing.
  8. Refer to the GDB General Public License for full details.
  9.  
  10. Everyone is granted permission to copy, modify and redistribute GDB,
  11. but only under the conditions described in the GDB General Public
  12. License.  A copy of this license is supposed to have been given to you
  13. along with GDB so you can know your rights and responsibilities.  It
  14. should be in a file named COPYING.  Among other things, the copyright
  15. notice and this notice must be preserved on all copies.
  16.  
  17. In other words, go ahead and share GDB, but don't try to stop
  18. anyone else from sharing it farther.  Help stamp out software hoarding!
  19. */
  20.  
  21. /* Various possibilities for alloca.  */
  22. #ifdef __GNUC__
  23. #define alloca __builtin_alloca
  24. #else
  25. #ifdef sparc
  26. #include <alloca.h>
  27. #else
  28. extern char *alloca ();
  29. #endif
  30. #endif
  31.  
  32. #define CORE_ADDR unsigned int
  33.  
  34. #define min(a, b) ((a) < (b) ? (a) : (b))
  35. #define max(a, b) ((a) > (b) ? (a) : (b))
  36.  
  37. extern char *savestring ();
  38. extern char *concat ();
  39. extern char *xmalloc (), *xrealloc ();
  40. extern int parse_escape ();
  41. extern char *reg_names[];
  42.  
  43. extern int quit_flag;
  44.  
  45. extern int immediate_quit;
  46.  
  47. #define QUIT { if (quit_flag) quit (); }
  48.  
  49. enum command_class
  50. {
  51.   no_class = -1, class_run = 0, class_vars, class_stack,
  52.   class_files, class_support, class_info, class_breakpoint,
  53.   class_alias, class_obscure, class_user
  54. };
  55.  
  56. /* the cleanup list records things that have to be undone
  57.    if an error happens (descriptors to be closed, memory to be freed, etc.)
  58.    Each link in the chain records a function to call and an
  59.    argument to give it.
  60.  
  61.    Use make_cleanup to add an element to the cleanup chain.
  62.    Use do_cleanups to do all cleanup actions back to a given
  63.    point in the chain.  Use discard_cleanups to remove cleanups
  64.    from the chain back to a given point, not doing them.  */
  65.  
  66. struct cleanup
  67. {
  68.   struct cleanup *next;
  69.   void (*function) ();
  70.   int arg;
  71. };
  72.  
  73. extern void do_cleanups ();
  74. extern void discard_cleanups ();
  75. extern struct cleanup *make_cleanup ();
  76. extern void free_current_contents ();
  77.  
  78. /* Structure for saved commands lines
  79.    (for breakpoints, defined commands, etc).  */
  80.  
  81. struct command_line
  82. {
  83.   struct command_line *next;
  84.   char *line;
  85. };
  86.  
  87. struct command_line *read_command_lines ();
  88.  
  89. /* String containing the current directory (what getwd would return).  */
  90.  
  91. char *current_directory;
  92.